﻿#include <QCoreApplication>
#include <iostream>
#include <QTextStream>
using namespace std;

int removeDuplicates(QList<int> nums);

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QTextStream in(stdin);
    QList<QString> strs;
    QList<int> nums;
    QString str="";

    while(1)
    {
        nums.clear();     //清除nums中上一轮存储的数字

        cout<<"*****************************************删除有序数组中的重复项目********************************************"<<endl;
        cout<<endl;
        cout<<"请按照顺序输入数字（每个数字之间以任意长的空格分隔，按回车键结束输入）："<<endl;
        str=in.readLine();     //读取输入的一行
        strs=str.split(" ",QString::SkipEmptyParts);     //按空格分割字符串
        cout<<endl;

        for(int i=0;i<strs.size();i++)
        {
            nums.append(strs[i].toInt());     //将字符串转化为数字，并依次存入nums中
        }

        int newSize=removeDuplicates(nums);
        cout<<"数组的新长度为："<<newSize<<endl;
        cout<<endl;
        system("pause");
        system("cls");
    }

    return a.exec();
}

int removeDuplicates(QList<int> nums)
{
    int numCount=1;

    for(int i=0;i<nums.size();++i)
    {
        numCount=nums.count(nums[i]);     //记录同一个数字出现的次数

        for(int j=0;j<numCount-1;++j)
        {
            nums.removeAt(nums.indexOf(nums[i],i+1));     //若有重复出现的数字，这些重复数字中，从第二个开始依次删除
        }
    }

    cout<<"新的数组为：";
    for(int i=0;i<nums.size();i++)
    {
        cout<<nums[i]<<" ";
    }
    cout<<endl;

    return nums.size();
}
